跳到主要内容

get post

func main() {
// 使用默认中间件创建gin路由器
// 日志、恢复中间件,
// 日志中间件用于记录请求等日志信息。
// 恢复中间件用户在发生以外的时候,返回500状态码,
// 避免请求阻塞等意外情况发生
router := gin.Default()

router.GET("/someGet", getting)
router.POST("/somePost", posting)
router.PUT("/somePut", putting)
router.DELETE("/someDelete", deleting)
router.PATCH("/somePatch", patching)
router.HEAD("/someHead", head)
router.OPTIONS("/someOptions", options)

// 匹配 /user/john
// 不匹配 /user 或 /john
router.GET("/user/:name", func(c *gin.Context) {
name := c.Param("name")
c.String(http.StatusOK, "Hello %s", name)
})

// 查询字符串参数使用现有的基础请求对象进行解析。
// 响应下列请求的url为: /welcome?firstname=Jane&lastname=Doe
router.GET("/welcome", func(c *gin.Context) {
firstname := c.DefaultQuery("firstname", "Guest")
lastname := c.Query("lastname") // shortcut for c.Request.URL.Query().Get("lastname")

c.String(http.StatusOK, "Hello %s %s", firstname, lastname)
})


//表单
router.POST("/form_post", func(c *gin.Context) {
message := c.PostForm("message")
nick := c.DefaultPostForm("nick", "anonymous")

c.JSON(200, gin.H{
"status": "posted",
"message": message,
"nick": nick,
})
})


//上传
// 为组合表单(multipart)设置低内存(默认32MiB)
router.MaxMultipartMemory = 8 << 20 // 8 MiB
router.POST("/upload", func(c *gin.Context) {
// 单文件
file, _ := c.FormFile("file")
log.Println(file.Filename)

// 上传到指定的目的地
c.SaveUploadedFile(file, dst)

c.String(http.StatusOK, fmt.Sprintf("'%s' uploaded!", file.Filename))
})

// 默认情况下,服务将会监听8080端口,或者使用PORT环境变量
router.Run()
// router.Run(":3000") 可以指定监听端口
}